home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / oledem / main.frm < prev    next >
Text File  |  1995-05-08  |  9KB  |  370 lines

  1. VERSION 2.00
  2. Begin Form frmMain 
  3.    Caption         =   "Save and Load Ole Objects"
  4.    ClientHeight    =   3660
  5.    ClientLeft      =   525
  6.    ClientTop       =   2160
  7.    ClientWidth     =   8250
  8.    Height          =   4350
  9.    Left            =   465
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   3660
  12.    ScaleWidth      =   8250
  13.    Top             =   1530
  14.    Width           =   8370
  15.    Begin Frame Frame2 
  16.       Caption         =   "Object Loaded"
  17.       Height          =   3375
  18.       Left            =   3120
  19.       TabIndex        =   3
  20.       Top             =   120
  21.       Width           =   4965
  22.       Begin OLE OLE1 
  23.          DisplayType     =   1  'Icon
  24.          fFFHk           =   -1  'True
  25.          Height          =   2415
  26.          Left            =   150
  27.          TabIndex        =   4
  28.          Top             =   690
  29.          Width           =   4665
  30.       End
  31.       Begin Label LabelUnsaved 
  32.          Caption         =   "*"
  33.          Height          =   255
  34.          Left            =   150
  35.          TabIndex        =   6
  36.          Top             =   390
  37.          Width           =   135
  38.       End
  39.       Begin Label LabelFormat 
  40.          Alignment       =   1  'Right Justify
  41.          Caption         =   "LabelFormat"
  42.          Height          =   255
  43.          Left            =   3240
  44.          TabIndex        =   5
  45.          Top             =   390
  46.          Width           =   1575
  47.       End
  48.       Begin Label LabelLoaded 
  49.          Caption         =   "LabelLoaded"
  50.          Height          =   255
  51.          Left            =   300
  52.          TabIndex        =   0
  53.          Top             =   390
  54.          Width           =   2955
  55.       End
  56.    End
  57.    Begin Frame Frame1 
  58.       Caption         =   "Objects in Database"
  59.       Height          =   3375
  60.       Left            =   120
  61.       TabIndex        =   1
  62.       Top             =   120
  63.       Width           =   2775
  64.       Begin ListBox ListObject 
  65.          Height          =   2760
  66.          Left            =   120
  67.          TabIndex        =   2
  68.          Top             =   360
  69.          Width           =   2535
  70.       End
  71.    End
  72.    Begin Menu mnuRecord 
  73.       Caption         =   "&Record"
  74.       Begin Menu mnuRecordLoad 
  75.          Caption         =   "&Load"
  76.       End
  77.       Begin Menu mnuRecordSave 
  78.          Caption         =   "&Save..."
  79.       End
  80.       Begin Menu mnuRecordDelete 
  81.          Caption         =   "&Delete"
  82.       End
  83.       Begin Menu mnuRecordSep1 
  84.          Caption         =   "-"
  85.       End
  86.       Begin Menu mnuRecordExit 
  87.          Caption         =   "&Exit"
  88.       End
  89.    End
  90.    Begin Menu mnuObject 
  91.       Caption         =   "&Object"
  92.       Begin Menu mnuObjectInsert 
  93.          Caption         =   "&Insert..."
  94.       End
  95.       Begin Menu mnuObjectDelete 
  96.          Caption         =   "&Delete"
  97.       End
  98.       Begin Menu mnuObjectEdit 
  99.          Caption         =   "&Edit"
  100.          Begin Menu mnuObjectVerb 
  101.             Caption         =   "verb"
  102.             Index           =   0
  103.          End
  104.       End
  105.    End
  106. End
  107. Option Explicit
  108.  
  109. Function DocumentFormatDescription (iType As Integer) As String
  110.     Select Case iType
  111.         Case 0
  112.             DocumentFormatDescription = "0 Access 1.x Ole"
  113.         Case 1
  114.             DocumentFormatDescription = "1 Ole2"
  115.         Case 2
  116.             DocumentFormatDescription = "2 Access 1.x Paintbrush"
  117.     End Select
  118. End Function
  119.  
  120. Sub Form_Load ()
  121.     Dim Verb As Integer
  122.     
  123.     LabelLoaded.Caption = ""
  124.     LabelFormat.Caption = ""
  125.     LabelUnsaved.Caption = ""
  126.  
  127.     Call LoadListObject
  128.     
  129.     On Error Resume Next
  130.     For Verb = 1 To OLE_MAX_VERBS
  131.         Load mnuObjectVerb(Verb)
  132.     Next Verb
  133.     mnuObjectVerb(0).Visible = False
  134.     
  135. End Sub
  136.  
  137. Sub Form_Unload (Cancel As Integer)
  138.     End
  139. End Sub
  140.  
  141. Sub ListObject_DblClick ()
  142.     Call mnuRecordLoad_Click
  143. End Sub
  144.  
  145. Sub LoadListObject ()
  146.     Dim sCmd As String
  147.     Dim ss As Snapshot
  148.  
  149.     'Clear list of items
  150.     ListObject.Clear
  151.  
  152.     'Create dynaset
  153.     sCmd = "select DocumentName from Document"
  154.     sCmd = sCmd + " order by DocumentName"
  155.     Set ss = db.CreateSnapshot(sCmd)
  156.  
  157.     Do While Not ss.EOF
  158.         ListObject.AddItem ss("DocumentName")
  159.         ss.MoveNext
  160.     Loop
  161.  
  162.     ss.Close
  163.     
  164. End Sub
  165.  
  166. Sub mnuObject_Click ()
  167.     Dim Verb
  168.     Dim LargestCurrentVerb As Integer
  169.     
  170.     If Ole1.OLEType = OLE_NONE Then
  171.         mnuObjectDelete.Enabled = False
  172.         mnuObjectEdit.Enabled = False
  173.     Else
  174.         mnuObjectDelete.Enabled = True
  175.         mnuObjectEdit.Enabled = True
  176.  
  177.         Ole1.Action = OLE_FETCH_VERBS
  178.         LargestCurrentVerb = Ole1.ObjectVerbsCount - 1
  179.           
  180.         For Verb = 1 To LargestCurrentVerb
  181.             mnuObjectVerb(Verb).Caption = Ole1.ObjectVerbs(Verb)
  182.             mnuObjectVerb(Verb).Visible = True
  183.         Next Verb
  184.         
  185.         For Verb = LargestCurrentVerb + 1 To OLE_MAX_VERBS
  186.             mnuObjectVerb(Verb).Visible = False
  187.         Next Verb
  188.  
  189.     End If
  190.     
  191. End Sub
  192.  
  193. Sub mnuObjectDelete_Click ()
  194.     Ole1.Action = OLE_DELETE
  195.     LabelLoaded.Caption = ""
  196.     LabelFormat.Caption = ""
  197.     LabelUnsaved.Caption = ""
  198. End Sub
  199.  
  200. Sub mnuObjectInsert_Click ()
  201.     If Ole1.OLEType <> OLE_NONE Then
  202.         If MsgBox("Delete Current Object?", 1) = 2 Then
  203.             Exit Sub
  204.         End If
  205.         Ole1.Action = OLE_DELETE
  206.         LabelLoaded.Caption = ""
  207.         LabelFormat.Caption = ""
  208.         LabelUnsaved.Caption = ""
  209.     End If
  210.     Ole1.Action = OLE_INSERT_OBJ_DLG
  211.     If Ole1.OLEType <> OLE_NONE Then
  212.         Ole1.HostName = "Untitled"
  213.         LabelLoaded.Caption = Ole1.HostName
  214.         LabelUnsaved.Caption = "*"
  215.         Ole1.Action = OLE_ACTIVATE
  216.     End If
  217. End Sub
  218.  
  219. Sub mnuObjectVerb_Click (index As Integer)
  220.     Ole1.Verb = index
  221.     Ole1.Action = OLE_ACTIVATE
  222. End Sub
  223.  
  224. Sub mnuRecord_Click ()
  225.     
  226.     If ListObject.ListIndex = -1 Then
  227.         mnuRecordLoad.Enabled = False
  228.         mnuRecordDelete.Enabled = False
  229.     Else
  230.         mnuRecordLoad.Enabled = True
  231.         mnuRecordDelete.Enabled = True
  232.     End If
  233.  
  234.     If Ole1.OLEType <> OLE_NONE Then
  235.         mnuRecordSave.Enabled = True
  236.     Else
  237.         mnuRecordSave.Enabled = False
  238.     End If
  239.  
  240. End Sub
  241.  
  242. Sub mnuRecordDelete_Click ()
  243.     Dim sCmd As String
  244.  
  245.     If MsgBox("Delete Object " + ListObject.Text + " from Database?", 49) = 2 Then
  246.         Exit Sub
  247.     End If
  248.  
  249.     MousePointer = 11
  250.     sCmd = "delete from Document"
  251.     sCmd = sCmd + " where DocumentName = """ + ListObject.Text + """"
  252.  
  253.     db.Execute sCmd
  254.  
  255.     Call LoadListObject
  256.     MousePointer = 0
  257.  
  258. End Sub
  259.  
  260. Sub mnuRecordExit_Click ()
  261.     Unload Me
  262. End Sub
  263.  
  264. Sub mnuRecordLoad_Click ()
  265.     Dim sCmd As String
  266.     Dim ds As Dynaset
  267.     
  268.     MousePointer = 11
  269.  
  270.     'Create dynaset
  271.     sCmd = "select DocumentType, DocumentOle from Document"
  272.     sCmd = sCmd + " where DocumentName = """ + ListObject.Text + """"
  273.  
  274.     Set ds = db.CreateDynaset(sCmd)
  275.     If ds.EOF Then
  276.         MsgBox "Could not find " + ListObject.Text + "!"
  277.         ds.Close
  278.         MousePointer = 0
  279.         Exit Sub
  280.     End If
  281.  
  282.     iDocumentType = ds("DocumentType")
  283.  
  284.     Select Case iDocumentType
  285.         
  286.         Case DOCUMENT_TYPE_ACCESS1XOLE
  287.             Call CopyFieldToAccess1xOle(ds("DocumentOle"), Ole1)
  288.         
  289.         Case DOCUMENT_TYPE_OLE2
  290.             Call CopyFieldToOle2(ds("DocumentOle"), Ole1)
  291.  
  292.     End Select
  293.     
  294.     ds.Close
  295.     
  296.     LabelLoaded.Caption = ListObject.Text
  297.     LabelFormat.Caption = DocumentFormatDescription(iDocumentType)
  298.     LabelUnsaved.Caption = ""
  299.     Ole1.HostName = ListObject.Text
  300.  
  301.     MousePointer = 0
  302.  
  303. End Sub
  304.  
  305. Sub mnuRecordSave_Click ()
  306.     Dim sCmd As String
  307.     Dim ds As Dynaset
  308.  
  309.     'Set form controls
  310.     frmDocumentName.TextDocumentName.Text = Ole1.HostName
  311.     frmDocumentName.OptionDocumentType(iDocumentType).Value = True
  312.     frmDocumentName.Show 1
  313.  
  314.     'Test global for good name
  315.     If sDocumentName = "" Then
  316.         Exit Sub
  317.     End If
  318.     
  319.     MousePointer = 11
  320.     sCmd = "select DocumentN